题解 模拟赛

$T1$

对于$20\%$的数据,状压暴力

对于$50\%$的数据,网络流,但是出题人没写过

对于$100\%$的数据

转换成图论问题,对物质和变换规则建点,对于一种变换规则,需要$L$种物质,缺一不可,类似于拓扑排序的感觉,而在一种变换规则成立后,它又会带来$R$种物质,类似于$bfs$的感觉,所以不能只用$bfs$或拓扑排序,所以,只需要两个一起用就行了极其无脑

$T2$

看到二叉搜索树,应该很容易想到对树进行中序遍历。这样问题就变成了对一个序列$A_i,$修改数量最少的元素,使得这个数列严格递增

对于$30\%$的数据$,2^n$枚举那些点改变,然后贪心

对于$50\%$的数据,给求最长不下降子序列只会$O(n^2)$的选手准备的,即正解中的求最长不下降子序列$O(nlogn)$改成$O(n^2)$.

对于$100\%$的数据

一个比较$naive$的想法就是对这个序列求最长上升子序列$x,$然后$n-x$即是答案。

这显然是错误的

然后我们考虑一个奇技淫巧,将每个$A_i-$$=i,$然后求最长不下降子序列

举个栗子$:2\;\; 9\;\;3\;\;9\;\;4\;\;8\;\;5,$按照上面的做法得出的最长上升子序列为$2~3~4~5$或$2~3~4~8$,得出的修改次数为$3,$但是显然答案为$5.$

而我们修改后的序列为$1\;\;7\;\;0\;\;5\;\;-1\;\;2\;\;-2$

这样修改后可以做到第$i$个位置最少要比第$i+1$个位置少$,1,$而$i$最少要比$i+2$的位置少$2$.

$T3$

对于$Subtask~1:$

$1.$枚举两个点,路径中一个个节点统计

$2.n^2$枚举两个点,然后用树剖判断判断是否可行

复杂度$O(n^2log^2n)$

对于$Subtask~2:$

将正解的扫描线改成暴力修改

复杂度$O(n^2)$

对于$Subtask~3:$

尺取法

复杂度$O(n)$

对于$Subtask~4:$

由于每种颜色最多只有$20$个节点。我们枚举一对颜色相同的节点,分别设为$x,y$.

对于$x,y$的情况分成两类$($下面默认$dep_x<dep_y):$

$1.x$不是$y$的祖先

那么所有两端分别位于$x$的子树与$y$的子树中的路径都是不合法的。

$2.x$是$y$的祖先

那么不合法路径的一段位于$y$的子树,另一端位于$y$所在$x$的儿子的子树中。

如果用一个矩阵表示的话,枚举一对颜色相同的节点就相当于对一个矩形染色。

最后没有染色的就是合法路径,再根据题目限制去重一下即是最终答案。

矩阵求并用扫描线即可

总结

出题人估计难度 $\color{limegreen}{绿}$,$\color{limegreen}{绿}$,$\color{blueViolet}{紫}$.

本次比赛难度类似$NOIPday1$,而且暴力分很足

但是由于没有送分题,所以平均分不会很高

对于$T1,$估计有$6 \sim 10$个人$A$掉,平均分大概在$35 \sim 60$之间,因为$20\%$的数据很容易,网络流估计有$6$个左右的人写出来

对于$T2$,估计有$5 \sim 10$个人$A$掉,平均分大概在$30\sim 50 $之间,因为出题人觉得转成中序遍历应该有少部分人想不到,但是想到的话$30$分应该稳拿,即使想不到也还有链的情况可以写。

对于$T3$,估计有$2\sim 5$个人$A$掉,平均分大概在$30\sim 50$之间,因为$25\%$的暴力很无脑,$15\%$的链的情况也不难想,并且原题挺有名的

$1.$赠送分$20+30+25=75$

$2.$普通暴力神仙$50+30+25=105$

$3.$高级暴力神仙$100+50+40=190$

$4.$平均分$70+40+40-10($平均写萎分$)=140.$

$5.AK$神仙$100+100+100=300$

原题$:$

$T1:$https://www.luogu.org/problem/P4957

$T2:$

现在给定一棵二叉树,可以任意修改结点的数值。修改一
个结点的数值算作一次修改,且这个结点不能再被修改。若要将其变成一棵二叉搜索树,且
任意时刻结点的数值必须是整数(可以是负整数或$0$),所要的最少修改次数。

二叉搜索树首先是一棵二叉树。设$key[p]$表示结点$p$上的数值。
对于其中的每个结点$p$,若其存在左孩子$lch$,则$key[p]>key[lch]$;若其存在右孩子$rch$,则$key[p]<key[rch]$;注意,本题中的二叉搜索树应满足对于所有结点,其左子树中的$key$小于当前结点的$key$,其右子树中的$key$大于当前结点的$key$。

$T3:$https://loj.ac/problem/6276